/*This file is part of WZLibCP.

 *  WZLibCP is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

 *  WZLibCP is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

 *  You should have received a copy of the GNU General Public License
    along with WZLibCP.  If not, see <http://www.gnu.org/licenses/>.
		
	Author: calc0000
*/
#ifndef __WZLIB_WZIMAGEPROPERTY_H
#define __WZLIB_WZIMAGEPROPERTY_H
#include "WZLibConfig.h"

#include <string>

#include "WZObject.h"

namespace WZLib{
	class WZImage;
	class WZImageProperty:public WZObject{
	public:
		typedef enum _enum_PropertyType{
			Prop_Unknown,
			Prop_Null,
			Prop_UnsignedShort,
			Prop_CompressedInt,
			Prop_Vector,
			Prop_Float,
			Prop_Double,
			Prop_String,
			Prop_Sub,
			Prop_Extended,
			Prop_Canvas,
			Prop_Convex,
			Prop_PNG,
			Prop_MP3,
			Prop_UOL,
		}PropertyType;
	protected:
		WZImage*			_imgParent;
		PropertyType		_propType;
	public:
		//Constructor
		ctor				WZImageProperty(WZImage* parent=NULL,PropertyType propType=Prop_Unknown,std::string name="",ObjectType type=Unknown);
		//Destructor
		dtor				~WZImageProperty();
		//Getters/Setters
		WZImage**			imgParent();
		PropertyType&		propType();
		//Methods
		virtual ErrorCode parse(WZBinaryReader* reader)=0;
		static std::string typeName(PropertyType type);
	};
};

#endif